#include "../../include/server_handle.h"
/***************************************************
函数名:server_all
功能:处理客户端群发消息
传入参数:struct message *a, clientinf *clientNode
返回值:禁言返回0，否则返回1
***************************************************/
int server_all(struct message *a, clientinf *clientNode)
{

	datatype e;
 	my_strcpy(e.name,(*a).name);
	LinkList L;
	L = (LinkList)findlist(clientlink,e);
	if(L != NULL)
	{
	    if(L->data.speak == 0)
	    {
			my_strcpy((*a).flag,"sermsg");
			sprintf((*a).msg,"对不起，你已经被管理员禁言了!");
			my_send(L->data.decr,a,sizeof(struct message),0);
			return 0;
		}
	}
    if (my_strcmp((*a).msg,"") != 0)
    {
        L = clientlink;
        L = L->next;
        my_strcpy((*a).name,(*clientNode).name);
        while(L != NULL)
        {
            my_send(L->data.decr,a,sizeof(struct message),0);
            L = L->next;
        }
    }
	return 1;
}
/***************************************************
函数名:server_personal
功能:处理客户端私聊
传入参数:struct message *a, clientinf *clientNode
返回值:成功返回1，否则返回0
***************************************************/
int server_personal(struct message *a, clientinf *clientNode)
{
	datatype e;
	my_strcpy(e.name,(*a).name);
	LinkList L;
	L = (LinkList)findlist(clientlink,e);
	if(L != NULL)
	{
		if(L->data.speak == 0)
		{
			my_strcpy((*a).flag,"sermsg");
			sprintf((*a).msg,"对不起，你已经被管理员禁言了!");
			my_send(L->data.decr,a,sizeof(struct message),0);
			return 0;
		}
	}
	L = clientlink;
	L=L->next;
	my_strcpy(e.name,(*a).addressee);
	L = (LinkList)findlist(clientlink,e);
	if(L == NULL)
	{
		my_strcpy((*a).flag,"sermsg");
		sprintf((*a).msg,"该用户不在线\n");
		my_send((*clientNode).decr,a,sizeof(struct message),0);
		return 0;
	}
	else
	{
		if (my_strcmp((*a).msg,"") != 0)
		{
			my_send(L->data.decr,a,sizeof(struct message),0);
		}
	}
	return 1;
}

